#pragma once

namespace My {

// Editable

template <class T, class B>
typename Editable<T, B>::PropertyMapClass & Editable<T, B>::PropertyMapClass::Init()
{ 
	if (!Initialized()) {
		B::PropertyMapClass::Init();
		T::InitPropertyMap(* this); 
	}
	return * this;
}

template <class T, class B>
const PropertyMap & Editable<T, B>::GetProperties() const 
{ 
	return theProperties.Init(); 
}

template <class T, class B>
typename Editable<T, B>::PropertyMapClass Editable<T, B>::theProperties;

} // My
